
package objetosDeJuego;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

import componentes.Camino;
import componentes.Posicion;

public abstract class Enemigo {

			private List caminoARecorrer;
			private int vida;
			private float velocidad;
			private boolean pegado;
			private boolean enemigoVolador;
			private ListIterator iterador;
			//private Posicion unaPosicion;

			public Enemigo(int vida, float velocidad, List caminoARecorrer){
					
					this.caminoARecorrer = caminoARecorrer;
					this.vida = vida;
					this.velocidad = velocidad;
					this.pegado = false;
					this.enemigoVolador = false;	
					this.iterador = caminoARecorrer.listIterator();
			}
				
			public void decrementarVida (int danio){
				
					this.vida -= danio;
			}
			
			public boolean estaVivo (){
				
					return (this.vida>0);
			}
						
			public void setVelocidad(float velocidad){
			
						this.velocidad = velocidad;
			}
			
			public float getVelocidad(){
				
				          return velocidad;
			}
			
			public int getVida(){
				return this.vida;
			}
			protected void soyEnemigoVolador(){
				
				this.enemigoVolador = true;
			}
		
			public boolean puedeVolar(){
				
					return this.enemigoVolador;
			}
	         
			public boolean estaPegado(){
				
				return this.pegado;
			}

			public void avanzar(){
						if (velocidad>0) {
							int indicePosicion=0;
							if (iterador.hasNext()) {
								indicePosicion=iterador.nextIndex();
								Posicion unaPosicion=(Posicion)iterador.next();
								unaPosicion.getListaDeObjetos().add(this);
							}
							if (indicePosicion>0) {
								Posicion prePosicion = (Posicion)caminoARecorrer.get(indicePosicion-1);
								prePosicion.getListaDeObjetos().remove(this); 
								
							}
				    }	
 			}
			
			
}
